package EShop.local.persistence;

import java.io.IOException;

import EShop.local.valueobjects.Artikel;
import EShop.local.valueobjects.Ereignis;
import EShop.local.valueobjects.Kunde;
import EShop.local.valueobjects.Mitarbeiter;
import EShop.local.valueobjects.Person;
import EShop.local.valueobjects.Rechnung;
import EShop.local.valueobjects.Warenkorb;

public interface PersistenceManager {

	public void openForReading(String datenquelle) throws IOException;
	public void openForWriting(String datenquelle) throws IOException;
	
	public boolean close();

	/**
	 * Methode zum Einlesen der Daten aus einer externen Datenquelle.
	 * 
	 */
	public Artikel ladeArtikel() throws IOException;
	
	public Warenkorb ladeWarenkorb()throws IOException;
		
	public Ereignis ladeEreignis()throws IOException;
	
	public Rechnung ladeRechnung()throws IOException;
	
	public Person ladePerson()throws IOException;

	/**
	 * Methode zum Schreiben der Buchdaten in eine externe Datenquelle.
	 * 
	 * @param b Buch-Objekt, das gespeichert werden soll
	 * @return true, wenn Schreibvorgang erfolgreich, false sonst
	 */
	public boolean speichereArtikel(Artikel a) throws IOException;
	
	public boolean speicherePerson(Person p)throws IOException;
	
	public boolean speichereWarenkorb(Warenkorb w) throws IOException;
	
	public boolean speichereRechnung(Rechnung r) throws IOException;
	
	public boolean speichereEreignis(Ereignis e) throws IOException;

}